In many networks, computers exchange packets to communicate with each other. A packet is a group of bits that includes source and destination addresses as well as data bits, which form the payload of the packet. A packet may include other information such as a preamble, length (if not fixed length), padding, and error detection/correction codes.
According to the standard OSI Reference Model, there are seven layers of communications in a network. The hardware, firmware, and software for the network are responsible for the three lowest layers of the model, and the host system is responsible for the four higher layers of the model. The lowest layer is the Physical Layer which is concerned with the transmission of a raw bit stream over a physical channel, such as copper wire, optical fiber, radio, etc.
The second layer of the OSI Reference Model is the Data-Link Layer, which is responsible for establishing, maintaining, and releasing connections between and among network nodes. One common standard is the IEEE 802.3 specification, popularly known as Ethernet. A source site communicates with a destination site by transmitting a frame containing the address of the destination site to a network channel. Ethernet is a contention based networking protocol in that only one network site can transmit a frame to the channel at a time, though many sites can read the frame from the channel. However, such contention based networks suffer from performance degradation at high volumes of packet traffic.
Accordingly, some IEEE 802.3 based networks are subdivided into several segments connected by a bridge, so that traffic between nodes of one segment would not interfere with traffic between nodes of another segment. Bridges handle inter-segmental packet traffic by examining the destination addresses embedded in the packets and route those packets destined for extra-segmental nodes.
The third layer is the Network Layer, which provides an end-to-end communications link between two nodes of a network, such as the Internet. At the Network Layer, a station divides a message into one or more packets, which are transmitted individually and sent from node to node on the network until the destination node is reached. Accordingly, a router on each network site examines the contents of a packet for a destination address and makes a decision on where to send the packet next in the network.
In conventional bridges and routers, the data rate of a packet can be limited. For example, an incoming packet is usually first stored in a random access memory (RAM) buffer, such as a dynamic RAM (DRAM) buffer or static RAM (SRAM) buffer. Thus, the processing speed of a conventional bridge or router is limited by the speed of these memories.
Conventional bridges or routers typically require intervention by a processor in handling the incoming bit stream. The speed of the processor can further limit the data rate of the packet. Processors can be relatively costly and require substantial additional hardware and software resources. Part of the cost for processors also applies to functions unnecessary for routing or bridging packets. On the other hand, if a processor is already dedicated for another task, then sharing the processor to handle incoming packet reduces the performance of the shared processor.